GVariant *parameter,
gpointer user_data)
{
+ GVariant *state = g_action_get_state (G_ACTION (action));
gtk_label_set_label (GTK_LABEL (label), "Text set from toggle menu item");
+
+ g_simple_action_set_state (action, g_variant_new_boolean (!g_variant_get_boolean (state)));
+
+ g_variant_unref (state);
}
static void
static void
radio (GSimpleAction *action, GVariant *parameter, gpointer user_data)
{
- GVariant *new_state = g_variant_new_string (g_variant_get_string (parameter, NULL));
char *str;
str = g_strdup_printf ("From Radio menu item %s",
- g_variant_get_string (new_state, NULL));
+ g_variant_get_string (parameter, NULL));
gtk_label_set_label (GTK_LABEL (label), str);
g_free (str);
+
+ g_simple_action_set_state (action, parameter);
}
{ "normal-menu-item", normal_menu_item, NULL, NULL, NULL },
{ "toggle-menu-item", toggle_menu_item, NULL, "true", NULL },
{ "submenu-item", submenu_item, NULL, NULL, NULL },
- { "radio", radio, "s", "1", NULL },
+ { "radio", radio, "s", "'1'", NULL },
};